iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0
AI/ ML & Data

使用 jq 處理資料系列 第 2

Day2: curl 與 jq 起手式

  • 分享至 

  • xImage
  •  

curl + jq 是什麼?

想像一下,curl 就像是網路上的傳送門,把資料傳送到你手邊;而 jq 則是專屬魔法師,讓你能夠瞬間整理手邊複雜的 JSON 資料。當這兩個工具聯手時,能帶來超強的效率!你可以用 curl 從 API 取得資料,再用 jq 迅速過濾和提取需要的資訊,讓 JSON 資料變得一目了然,像魔術一樣。

圖片來源:ChatGPT 傳送門和魔法師

不多說,先看 code (圖)

我使用 windows 作業系統的命令提示字元,另外 JSON 資料來源使用了jsonplaceholder,https://jsonplaceholder.typicode.com 這個網站提供了免費可以用來測試的JSON資料,正好適合這次學習 jq 拿來練習🎉。

以下示範兩個不同的指令:

  • 指令 1 curl https://jsonplaceholder.typicode.com/todos/1,結果如下圖:
    https://ithelp.ithome.com.tw/upload/images/20240916/200783896cGvUQISjQ.png

  • 指令 2 curl https://jsonplaceholder.typicode.com/todos/1 | jq ,結果如下圖:
    https://ithelp.ithome.com.tw/upload/images/20240916/20078389QkeXlXeHmq.png

💡 觀察上面兩個指令和輸出,我們看到什麼差別呢?

  • 指令只有一個差別 |jq
  • 多了|jq,輸出的 JSON 看起來有經過整理,而且多了 JSON 格式的語法提示

這就是 jq 最簡單的用法,是不是讓人眼睛一亮呢?

關於 jsonplaceholder 這個 JSON 來源

如果有打開 jsonplaceholder 連結,進到頁面有 Try It 區塊,點按鈕有下圖的結果。

https://ithelp.ithome.com.tw/upload/images/20240916/20078389QDTVSuyzVL.png

結論

這時候再回頭看看,跟我們下的指令互相對照一下,大致上肉眼可見:

  • curl 在命令列幫我們做到程式中 fetch 的功用
  • | jq預設的動作就是幫我們將 fetch 得到的文字讀成 JSON 格式並輸出 。

我們把目前得到的對照整理如下表,好像有點概念了!

作法 傳送門 魔法師
1 程式 fetch .json()
2 指令 curl jq

今天,邁出了 curl + jq 的第一步,這只用到了 jq 處理資料的冰山一角,在接下來的日子裡,我們將深入探索更多用法!


上一篇
Day1: 前言
下一篇
Day3: 在 windows 作業系統安裝 jq
系列文
使用 jq 處理資料30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言